package zip;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

public class GZIPcompress {

	public static void main(String[] args) throws Exception {
		if (args.length == 0) {
			System.out.println("Usage: \nGZIPcompress file\n"
					+ "\tUses GZIP compression to compress"
					+ "the file to test.gz");
			System.exit(1);
		}

		BufferedInputStream in = new BufferedInputStream(new FileInputStream(args[0]));
		BufferedOutputStream out = new BufferedOutputStream(
				new GZIPOutputStream(new FileOutputStream("test.gz")));

		System.out.println("Writing file");
		int c;
		while (-1 != (c = in.read())) {
			out.write(c);
		}
		in.close();
		out.close();
		System.out.println("Writing file finished");

		System.out.println("Reading file:");
		BufferedReader in2 = new BufferedReader(new InputStreamReader(
				new GZIPInputStream(new FileInputStream("test.gz"))));
		String s;
		while(null!=(s=in2.readLine())) {
			System.out.println(s);
		}

	}
}
